package com.hengpeng.itfinbase.persist;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Enumerated;

import com.hengpeng.common.web.annotation.HtmlInput;
import com.hengpeng.common.web.annotation.HtmlInputPattern;
import com.hengpeng.common.web.annotation.HtmlInputType;
import com.hengpeng.itfinbase.idAssign.AbstractAssign18IdEntity;

/**
 * <pre>
 * 银行产品信息
 * </pre>
 * 
 * @author weiyuan
 * @version 1.0, 2015年8月23日
 */
@Entity
public class BankProduct extends AbstractAssign18IdEntity {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5905923932136357435L;

	public static enum Bank {
		ICBC("工商银行"), ABC("农业银行"), CMB("招商银行"), CCB("建设银行"), BCCB("北京银行"), BJRCB(
				"北京农村商业银行"), BOC("中国银行"), BOCOM("交通银行"), CMBC("民生银行"), BOS(
				"上海银行"), CBHB("渤海银行"), CEB("光大银行"), CIB("兴业银行"), CITIC("中信银行"), CZB(
				"浙商银行"), GDB("广发银行"), HKBEA("东亚银行"), HXB("华夏银行"), HZCB("杭州银行"), NJCB(
				"南京银行"), PINGAN("平安银行"), PSBC("邮储银行"), SDB("深发银行"), SPDB("浦发银行"), SRCB(
				"上海农村商业银行");

		private String text;

		Bank(String text) {
			this.text = text;
		}

		public String getText() {
			return text;
		}

		public void setText(String text) {
			this.text = text;
		}
	}

	public static enum ProductType {
		BANK("银行理财"), FINAICE("基金理财");

		private String text;

		ProductType(String text) {
			this.text = text;
		}

		public String getText() {
			return text;
		}

		public void setText(String text) {
			this.text = text;
		}
	}

	@Column(length = 25)
	@Enumerated(javax.persistence.EnumType.STRING)
	@HtmlInput(label = "发行银行", type = HtmlInputType.SELECT, labelProperty = "text", index = 1, nullable = false)
	private Bank bank;

	@Column(length = 25)
	@Enumerated(javax.persistence.EnumType.STRING)
	@HtmlInput(label = "理财类型", type = HtmlInputType.SELECT, labelProperty = "text", index = 1, nullable = false)
	private ProductType productType;

	@Column(length = 255)
	@HtmlInput(label = "产品名称", type = HtmlInputType.TEXT, index = 2, nullable = false)
	private String name;

	@Column(length = 50)
	@HtmlInput(label = "币种", maxLength = 500, type = HtmlInputType.TEXT, index = 3, nullable = false)
	private String moneytype;

	@Column(length = 50)
	@HtmlInput(label = "委托管理期", maxLength = 500, type = HtmlInputType.TEXT, index = 4, nullable = false)
	private String wtmanager;

	@Column(length = 50)
	@HtmlInput(label = "收益起计日", maxLength = 500, type = HtmlInputType.TEXT, pattern = HtmlInputPattern.DATETIME, format = "yyyy-MM-dd HH:mm", index = 5, nullable = false)
	private Date sybegindate;

	@Column(length = 50)
	@HtmlInput(label = "销售起始日期", maxLength = 500, type = HtmlInputType.TEXT, pattern = HtmlInputPattern.DATETIME, format = "yyyy-MM-dd HH:mm", index = 6, nullable = false)
	private Date xsbegindate;

	@Column(length = 50)
	@HtmlInput(label = "销售终止日期", maxLength = 500, type = HtmlInputType.TEXT, pattern = HtmlInputPattern.DATETIME, format = "yyyy-MM-dd HH:mm", index = 7, nullable = false)
	private Date xsenddate;

	@Column(length = 50)
	@HtmlInput(label = "付息周期", maxLength = 500, type = HtmlInputType.TEXT, index = 8, nullable = false)
	private String fszq;

	@Column(length = 50)
	@HtmlInput(label = "预期最高年化收益率", maxLength = 500, type = HtmlInputType.TEXT, index = 9, nullable = false)
	private String maxrate;

	@Column(length = 50)
	@HtmlInput(label = "年华收益", maxLength = 500, type = HtmlInputType.TEXT, index = 10, nullable = false)
	private String rate;

	@Column(length = 50)
	@HtmlInput(label = "委托起始金额", maxLength = 500, type = HtmlInputType.TEXT, index = 11, nullable = true)
	private String wtbeginmoney;

	@Column(length = 50)
	@HtmlInput(label = "收益类型", maxLength = 500, type = HtmlInputType.TEXT, index = 12, nullable = false)
	private String sytype;

	@Column(length = 50)
	@HtmlInput(label = "发售地区", maxLength = 500, type = HtmlInputType.TEXT, index = 13, nullable = false)
	private String sellarea;

	@Column(length = 50)
	@HtmlInput(label = "递增单位（元）", maxLength = 500, type = HtmlInputType.TEXT, index = 14, nullable = false)
	private String dzcell;

	@Column(length = 50)
	@HtmlInput(label = "产品管理费", maxLength = 500, type = HtmlInputType.TEXT, index = 15, nullable = false)
	private String managermoney;

	@Column(length = 50)
	@HtmlInput(label = "是否保本", maxLength = 500, type = HtmlInputType.SELECT, index = 16, nullable = false)
	@Enumerated(javax.persistence.EnumType.STRING)
	private BoolValue isbz;

	@Column(length = 50)
	@HtmlInput(label = "在售状态", maxLength = 500, type = HtmlInputType.TEXT, index = 17, nullable = false)
	private String sellstatus;

	@Column(length = 500)
	@HtmlInput(label = "提前终止条件", maxLength = 500, type = HtmlInputType.TEXT, index = 18, nullable = false)
	private String endcondition;

	@Column(length = 500)
	@HtmlInput(label = "产品说明", maxLength = 500, type = HtmlInputType.TEXTAREA, index = 19, nullable = false)
	private String productdesc;

	@Column(length = 500)
	@HtmlInput(label = "收益率说明", maxLength = 500, type = HtmlInputType.TEXTAREA, index = 20, nullable = false)
	private String sydesc;

	@HtmlInput(label = "最后修改日期", type = HtmlInputType.TEXT, pattern = HtmlInputPattern.DATETIME, format = "yyyy-MM-dd HH:mm", nullable = true, index = 24)
	private Date updateTime;

	@HtmlInput(label = "创建日期", type = HtmlInputType.TEXT, pattern = HtmlInputPattern.DATETIME, format = "yyyy-MM-dd HH:mm", nullable = true, index = 24)
	private Date createTime;

	public String getRate() {
		return rate;
	}

	public void setRate(String rate) {
		this.rate = rate;
	}

	public ProductType getProductType() {
		return productType;
	}

	public void setProductType(ProductType productType) {
		this.productType = productType;
	}

	public Bank getBank() {
		return bank;
	}

	public void setBank(Bank bank) {
		this.bank = bank;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getMoneytype() {
		return moneytype;
	}

	public void setMoneytype(String moneytype) {
		this.moneytype = moneytype;
	}

	public String getWtmanager() {
		return wtmanager;
	}

	public void setWtmanager(String wtmanager) {
		this.wtmanager = wtmanager;
	}

	public Date getSybegindate() {
		return sybegindate;
	}

	public void setSybegindate(Date sybegindate) {
		this.sybegindate = sybegindate;
	}

	public Date getXsbegindate() {
		return xsbegindate;
	}

	public void setXsbegindate(Date xsbegindate) {
		this.xsbegindate = xsbegindate;
	}

	public Date getXsenddate() {
		return xsenddate;
	}

	public void setXsenddate(Date xsenddate) {
		this.xsenddate = xsenddate;
	}

	public String getFszq() {
		return fszq;
	}

	public void setFszq(String fszq) {
		this.fszq = fszq;
	}

	public String getMaxrate() {
		return maxrate;
	}

	public void setMaxrate(String maxrate) {
		this.maxrate = maxrate;
	}

	public String getWtbeginmoney() {
		return wtbeginmoney;
	}

	public void setWtbeginmoney(String wtbeginmoney) {
		this.wtbeginmoney = wtbeginmoney;
	}

	public String getSytype() {
		return sytype;
	}

	public void setSytype(String sytype) {
		this.sytype = sytype;
	}

	public String getSellarea() {
		return sellarea;
	}

	public void setSellarea(String sellarea) {
		this.sellarea = sellarea;
	}

	public String getDzcell() {
		return dzcell;
	}

	public void setDzcell(String dzcell) {
		this.dzcell = dzcell;
	}

	public String getManagermoney() {
		return managermoney;
	}

	public void setManagermoney(String managermoney) {
		this.managermoney = managermoney;
	}

	public BoolValue getIsbz() {
		return isbz;
	}

	public void setIsbz(BoolValue isbz) {
		this.isbz = isbz;
	}

	public String getSellstatus() {
		return sellstatus;
	}

	public void setSellstatus(String sellstatus) {
		this.sellstatus = sellstatus;
	}

	public String getEndcondition() {
		return endcondition;
	}

	public void setEndcondition(String endcondition) {
		this.endcondition = endcondition;
	}

	public String getProductdesc() {
		return productdesc;
	}

	public void setProductdesc(String productdesc) {
		this.productdesc = productdesc;
	}

	public String getSydesc() {
		return sydesc;
	}

	public void setSydesc(String sydesc) {
		this.sydesc = sydesc;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

}
